package org.truenewx.tnxjee.core.enums.support;

import java.lang.reflect.Field;

import org.truenewx.tnxjee.core.util.ClassUtil;

/**
 * 枚举项取值协助者
 *
 * @author jianglei
 */
public class EnumItemValueHelper {

    /**
     * 枚举常量取值解决器实例，使用者可以修改它以使用自定义的解决器
     */
    public static EnumItemValueResolver RESOLVER = new DefaultEnumItemValueResolver();

    private EnumItemValueHelper() {
    }

    public static String getValue(Enum<?> enumConstant) {
        Field field = ClassUtil.getField(enumConstant);
        return getValue(field);
    }

    public static String getValue(Field field) {
        return RESOLVER.getValue(field);
    }

    public static <T> T valueOf(Class<T> clazz, String value) {
        return RESOLVER.valueOf(clazz, value);
    }

}
